package com.example.project7.utils;

import android.content.Context;
import android.content.SharedPreferences;

public class SharedPreferencesUtil {
    private static final String PREF_NAME = "user_prefs";
    private static final String KEY_TOKEN = "token";
    private static final String KEY_AUTO_LOGIN = "auto_login";
    private static final String KEY_USERNAME = "username";

    private static SharedPreferences getSharedPreferences(Context context) {
        return context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
    }

    /**
     * 保存Token
     */
    public static void saveToken(Context context, String token) {
        getSharedPreferences(context).edit().putString(KEY_TOKEN, token).apply();
    }

    /**
     * 获取Token
     */
    public static String getToken(Context context) {
        return getSharedPreferences(context).getString(KEY_TOKEN, "");
    }

    /**
     * 保存用户名
     */
    public static void saveUsername(Context context, String username) {
        getSharedPreferences(context).edit().putString(KEY_USERNAME, username).apply();
    }

    /**
     * 获取用户名
     */
    public static String getUsername(Context context) {
        return getSharedPreferences(context).getString(KEY_USERNAME, "");
    }

    /**
     * 保存自动登录状态
     */
    public static void saveAutoLogin(Context context, boolean autoLogin) {
        getSharedPreferences(context).edit().putBoolean(KEY_AUTO_LOGIN, autoLogin).apply();
    }

    /**
     * 获取自动登录状态
     */
    public static boolean getAutoLogin(Context context) {
        return getSharedPreferences(context).getBoolean(KEY_AUTO_LOGIN, false);
    }

    /**
     * 清除Token和自动登录状态
     */
    public static void clearToken(Context context) {
        getSharedPreferences(context).edit()
                .remove(KEY_TOKEN)
                .remove(KEY_AUTO_LOGIN)
                .remove(KEY_USERNAME)
                .apply();
    }

    /**
     * 检查是否已登录
     */
    public static boolean isLoggedIn(Context context) {
        return !getToken(context).isEmpty();
    }
}